<?php

/*
    realizzazione del customtype contratto

    questo va incluso nel file plugin che utilizza il post type
 */
 
// fissa gli hook
function wpf_contratto_hooks()
{
	// creo il plugin ed i relativi menu
	register_activation_hook(__FILE__, 'wpf_contratto_rewrite_flush'); // serve per i permalink
	add_action('init', 'wpf_contratto_init'); // quando inizializzo la pagina
	add_action('init', 'wpf_contratto_add_boxes', 1); // solo per compatibilità
	
// 	add_action('contextual_help', 'wpf_contratto_help_text', 10, 3); // genero l'help contestuale ai post, in amministrazione

	// modifico la visualizzazione dei custom-post
// 	add_filter('the_content', 'wpf_contratto_view'); // quando visualizzo il testo
// 	add_filter('the_title','wpf_progetto_title'); // quando visualizzo il titolo

	add_filter('wpf_contratto_field', 'wpf_contratto_render_field', 10, 2);
	add_filter('wpf_contratto_available_statuses','wpf_contratto_filter_status');

	// salvo i dati dei vari box creati
	//add_action('save_post', 'wpf_contratto_generale_save', 10, 2);


// 	add_filter('wpf_progetto_available_statuses', 'wpf_filter_status');
}

function wpf_contratto_filter_status($statuses) {
global $post;

    $new_statuses = array();

    $new_statuses['draft']      = $statuses['draft'];
    $new_statuses['pending']    = $statuses['pending'];
    $new_statuses['publish']    = $statuses['publish'];
    $new_statuses['in_corso']   = $statuses['in_corso'];
    $new_statuses['closed']     = $statuses['closed'];

    return $new_statuses;

}

// inizializza quello che serve
function wpf_contratto_init()
{
	// creazione del posttype
	//@ATTENTION modificare le varie descrizioni
	$labels = array(
		'name' => __('Contratto'),
		'singular_name' => __('Contratto'),
		'add_new' => __('Aggiungi nuovo'),
		'add_new_item' => __('Nuovo contratto'),
		'edit_item' => __('Modifica contratto'),
		'new_item' => __('Nuovo contratto'),
		'all_items' => __('Tutti i contratti'),
		'view_item' => __('Visualizza questo contratto'),
		'search_items' => __('Cerca un contratto'),
		'not_found' => __('Nessun contratto trovato'),
		'not_found_in_trash' => __('Non ci sono contratti nel cestino'),
		'parent_item_colon' => '',
		'menu_name' => 'Contratti'
	);

	$args = array(
		'labels' => $labels,
		'public' => true,
		'publicly_queryable' => true,
		'show_ui' => true,
		'show_in_menu' => 'edit.php?post_type=wpf_risorsa',
		'query_var' => true,
		'rewrite' => array(
			'slug' => 'contratto'
		),
                'capability_type' => array(
			'contratto', 'contratti'
		),
		'map_meta_cap' => true,
		'has_archive' => true,
		'hierarchical' => true,
		'menu_position' => null,
		'supports' => array(
			'title'
		)
	);

	register_post_type('wpf_contratto', $args);
}


function wpf_contratto_add_boxes()
{
	$readonly = (!current_user_can('approve_contratti')) && ($post->post_status != 'published');
	
	$form_fields = array(
			
            
           'data_contratto' => array(
                'type' => ($readonly ? 'readonly' : 'date'),
                'description' => __("Data firma contratto", WPF_DOMAIN ), 
                'howto' => __("Inserisci qui la data di stipula del contratto.", WPF_DOMAIN )
            ),
            'inizio_contratto' => array(
                'type' => ($readonly ? 'readonly' : 'date'),
                'description' => __("Data inizio del contratto", WPF_DOMAIN ), 
                'howto' => __("Inserisci qui la data ufficiale di inizio del contratto.", WPF_DOMAIN )
            ),
            'durata_contratto' => array(
                'type' => ($readonly ? 'readonly' : 'littlenumber'),
                'description' => __("Durata del contratto", WPF_DOMAIN ), 
                'howto' => __("Inserisci qui i mesi di durata del contratto", WPF_DOMAIN )
            ),
	    'tipo_contratto' => array(
                'type' => ($readonly ? 'readonly' : 'select'),
                'values' => "Tempo indeterminato,Noleggio,Contratto a progetto,Affitto,Fornitura",
                'description' => __("Tipologia del contratto", WPF_DOMAIN ), 
                'howto' => __("Indicare qui la tipologia del contratto (anche in base alla tipologia di risorsa)", WPF_DOMAIN )
            ),
             'documento' => array(
                'type' => ($readonly ? 'readonly' : 'file'),
                'description' => __('Documento',WPF_DOMAIN),
                'howto' => __('Carica qui la scansione del contratto (max 5MB)', WPF_DOMAIN),
                'position' => 'contratti'
        	)
    	);

	register_post_box('wpf_contratto', 'dati_contratto', 'Dati contratto', 'normal', 'core', $form_fields);

        register_post_parentbox('wpf_contratto', 'Risorsa',wpf_get_query('risorse_tutte'),__("Risorsa a cui si riferisce il contratto", WPF_DOMAIN ));
        
}


function wpf_contratto_render_field($field,$field_id) {
global $post;
    
    if ($field_id == 'risorsa')
	{
                //$field['default'] = get_post_meta($post->ID, 'risorsa',true);
                $field['default'] = $post->post_parent;
                if ($field['default']=='' & isset($_REQUEST['parent'])) $field['default']=$_REQUEST['parent'];
	}
	
	switch ($post->post_status)
	{
        case 'approved':    
        case 'publish':
        case 'closed':
		$field['readonly'] = true;
        break;
    }
    return $field;
    
}

function wpf_contratto_save($post_id, $post) {

   if ($post->post_type != 'wpf_contratto')
	{
		return;
	}

    /*
    $new_post = array('ID' => $post_id, 'post_parent' => get_post_meta($post_id, 'risorsa',true));
    
    remove_action('save_post', 'wpf_contratto_save',50,2);
    wp_update_post($new_post);
    add_action('save_post', 'wpf_contratto_save',50,2);
    */
    
}


// serve per gestire i permalink
function wpf_contratto_rewrite_flush()
{
	wpf_contratto_init();
	flush_rewrite_rules();
}

wpf_contratto_hooks();

?>
